const puppeteer = require('puppeteer');
const fs = require('fs');
var _headers = ['id', 'name', 'age', 'country', 'ee'];
const dlXlsx = require('./dlXlsx.js');
const getDate = require('./getDate.js');

;(async () => {
   const browser = await puppeteer.launch({
    headless: false, //默认为true（无头），不显示浏览器界面
    slowMo :200, //减速显示，有时会作为模拟人操作特意减速
    devtools: true //显示开发者工具。页面宽高默认800*600,把开发者工具显示再隐藏页面会占满屏幕，有没有大佬解释下？
  });

  let days = await getDate('2018-02-21', '2018-03-02')

  for (var i = 0; i < days.length; i++) {
    var a = days[i];
    //生成Page对象
    //const page = await browser.newPage();//官网写法：一打开浏览器会打开两个tab，第二个才是你正在操作的tab
    const page =await browser.newPage(); //这是我的写法，只有一个tab
    // await page.setViewport({ // 页面宽高默认800*600,我觉得太小。我一般都会先初始化页面大小。
    //   width: 1280,
    //   height: 800
    // });
    await page.goto('http://61.163.88.227:8006/hwsq.aspx'); //跳转到页面

   //请开始你的表演...
    await page.waitFor(1000);

    const result = await page.evaluate((a) => {
       document.querySelector('#ContentLeft_menuDate1_TextBox11').value = a
       document.querySelector('#ContentLeft_Button1').click()
       var resultData = {
         time:'',
         data: []
        }

        let p = new Promise((resolve) => {
           setTimeout(() => {
              var table1 = document.querySelectorAll('#UpdatePanel1 > table.mainTxt > tbody > tr > td:nth-child(1) > table > tbody > tr')
              var table2 = document.querySelectorAll('#UpdatePanel1 > table.mainTxt > tbody > tr > td:nth-child(2) > table > tbody > tr');
              var title = document.querySelector('div.secTitle').innerText;
              var allData = Array.prototype.slice.call(table1,1).concat(Array.prototype.slice.call(table2,1))
              resultData.time = title
              for (var i = 0, len = allData.length; i < len; i++) {
                var tests = allData[i].innerText.split('\t')

                var obj = {
                  'id':tests[0],
                  'name':tests[1],
                  'age':tests[2],
                  'country':tests[3],
                  'ee':tests[4]
                }
                 resultData.data.push(obj)
              }
              resolve(resultData)
            }, 3000)
        })
        return p
      }, a)

      // await page.waitFor(10000);
    await dlXlsx(_headers, result.data, result.time);
    console.log(`hi: ${result.time} 的数据已完成`);

    page.close();
  }

  await browser.close(); //关闭浏览器
  // process.exit(0)
})();
